
// Toast组件展示与否最终要可以在各个组件中调用，所以放在Vuex中。
export default {

    namespaced: true,
    state: {
        isShowToast: false,
        toastMsg: '',
        toastType: ''

    },
    mutations: {
        // 此时要传递的payload必须是对象
        changeIsShowToast(state, payload) {
            state.isShowToast = payload.showToast
            if (payload.showToast) {
                state.toastMsg = payload.msg,
                    state.toastType = payload.type
            }

        }

    },
    // 但是我们希望toast显示2秒后自动关闭，因此需要用到定时器=>异步操作==>写在actions
    actions: {
        asyncChangeIsShowToast(context, payload) {
            context.commit('changeIsShowToast', payload)
            setTimeout(() => {
                context.commit('changeIsShowToast', { showToast: false })
            }, 2000);
        }
    }
}